|
C# 인트로 |
[1] |
|
등록일:2008-03-27 20:00:25 (0%) 작성자:갤러리정 제목:컬렉션11 : 큐(Queue) 클래스 |
|
7.11 큐(Queue) 클래스
Queue 클래스는 선입선출구조(FIFO : First-In, First-Out)의 컬렉션입니다. 제일 처음 삽입된 데이터가 먼저 추출된다는 의미의 큐(Queue)는 데이터를 삽입하는 Enqueue(), 데이터를 추출하는 Dequeue(), 추출한 데이터를 삭제하지 않고 데이터만 가져오는 Peek() 3개의 메서드를 주로 사용합니다. 다음은 Queue의 프로토타입입니다.
▣ Queue 클래스의 프로토타입 |
□ public class Queue : ICollection, IEnumerable, ICloneable |
▣ Queue 클래스의 특징 |
□ 선입선출(First-In-First-Out) 컬렉션 클래스
□ Enqueue() 메서드는 Queue의 첫위치에 요소를 삽입
□ Dequeue() 메서드는 Queue의 마지막 위치의 요소를 삭제
□ Peek() 메서드는 Queue의 마지막 위치의 요소를 제거하지 않고 반환. |
& |
QueueTest.cs |
Ü Queue를 테스트하는 예제 |
using System; using System.Collections;
public class QueueTest{ static void Main(){ Queue que = new Queue(); que.Enqueue("Hi"); que.Enqueue(5); que.Enqueue(500); que.Enqueue("Hello"); Print("1. Queue의 목록:", que ); object obj = que.Dequeue(); Console.WriteLine("2. Dequeue:{0}", obj); obj = que.Dequeue(); Console.WriteLine("3. Dequeue:{0}", obj); Print( "4. 두개를 Dequeue한 후의 목록:", que ); obj = que.Peek(); Console.WriteLine("5. Peek:{0}", obj); Print( "6. Peek한 후의 Queue의 목록:", que ); } //main
public static void Print(string info, IEnumerable myCollection ){ Console.Write(info+"\n\t"); IEnumerator myEnumerator = myCollection.GetEnumerator(); while ( myEnumerator.MoveNext() ) Console.Write( "{0}, ",myEnumerator.Current ); Console.WriteLine(); } } //class |
C:\C#Example\07>csc QueueTest.cs
C:\C#Example\07>QueueTest
1. Queue의 목록:
Hi, 5, 500, Hello,
2. Dequeue:Hi
3. Dequeue:5
4. 두개를 Dequeue한 후의 목록:
500, Hello,
5. Peek:500
6. Peek한 후의 Queue의 목록:
500, Hello, |
Queue 객체를 생성한 후 Enqueue() 메서드를 이용하여 큐에 데이터를 삽입하고 있습니다.
Queue que = new Queue();
que.Enqueue("Hi");
que.Enqueue(5);
que.Enqueue(500);
que.Enqueue("Hello");
Dequeue() 메서드를 호출하여 객체를 반환하고 Queue에서 데이터를 제거하고 있습니다. 이 때 반환되는 데이터형은 object형입니다.
object obj = que.Dequeue();
obj = que.Dequeue();
Dequeue()는 데이터를 추출한 뒤 데이터를 제거하지만 Peek() 메서드는 데이터만을 반환하고 데이터는 그대로 놓아 둡니다.
obj = que.Peek();
Queue 구조의 가장 큰 특징은 바로 선입선출(先入先出)입니다. 입력할 때는 Enqueue() 메서드를 사용하며 추출할 때는 Dequeue() 메서드를 이용합니다. 추출하기 전에 데이터만을 가져오고자 할 때는 Peek() 메서드를 이용하게 됩니다. |
[본문링크] 컬렉션11 : 큐(Queue) 클래스
|
[1]
|
|
|
|
|
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=3048 |
|
|
|
|
|
|
|
|
|
Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.
|
|
|